package com.wjm.shootgame.shoot;

import com.wjm.shootgame.shoot.img.Images;

import java.awt.image.BufferedImage;

public class Hero extends FlyingObject{
    public int life;//生命值
    public int fire;//活力值

    //构造方法初始化
    public Hero(){
//        this.width=130;
//        this.height=105;
//        this.x=100;
//        this.y=300;
        super(150,400,130,105);
        this.fire=0;
        this.life=3;
    }

    /**
     * 这是一个射击子弹的方法（也可以说是创建子弹的方法）
     * @return 返回创建子弹的数组
     */
    public Bullet[] shootBullets(){
        int xWidth = width/4;
        //通过fire属性判断当前要发出一发子弹还是两发子弹
        if (fire>0){
            Bullet[] bullets = new Bullet[2];
            //设置两发子弹的发射位置
            bullets[0] = new Bullet(this.x+xWidth,this.y);
            bullets[1] = new Bullet(this.x+(3*xWidth),this.y);
            return bullets;
        }else {
            Bullet[] bullets = new Bullet[1];
            //设置子弹的发射位置
            bullets[0] = new Bullet(this.x+(2*xWidth),this.y);
            return bullets;
        }
    }

    //用于输出初始化的值
    @Override
    public String toString() {
        return "Hero{" +
                "life=" + life +
                ", fire=" + fire +
                ", width=" + width +
                ", height=" + height +
                ", x=" + x +
                ", y=" + y +
                '}';
    }

    /**
     * 重写的画画方法
     * @return 返回存放图片的数组
     */
    //用来确定获取heros数组图片的下标
    int index = 0;
    @Override
    public BufferedImage getImage() {
        BufferedImage[] heros = Images.heroImage;
        //使获取的图片来回切换，于2取余一直是0，1切换
        return heros[index++ %2];
    }

    /**
     * 重写的移动方法
     */
    @Override
    public void move() {

    }
}
